package view.cursos;

import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import model.Area;
import model.Curso;
import model.comunication.IArea;
import model.comunication.ICurso;

public class ConsultarCurso {

	private JDialog frmConsultarCurso;
	private JTextField textNombre;
	private JTextArea textdescripcion;
	private JTextField textHorasTotales;
	private JTextField textArea;
	private JTextArea textTemario;
	private IArea cmmArea;
	private ICurso cmmCurso;
	private JCheckBox chckbxEditar;
	private JScrollPane scrollpaneDescr;
	private JButton btnEditar_Guardar;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					ConsultarCurso window = new ConsultarCurso(null);
					window.frmConsultarCurso.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	// public ConsultarCurso() {
	// cmmArea = IArea.getInstance();
	// cmmCurso = ICurso.getInstance();
	// initialize();
	// }

	/**
	 * Create the application.
	 */
	public ConsultarCurso(Curso curso) {
		cmmArea = IArea.getInstance();
		cmmCurso = ICurso.getInstance();
		initialize(curso);
		getCurso(curso);

	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize(final Curso curso) {
		this.frmConsultarCurso = new JDialog();
		this.frmConsultarCurso.setVisible(true);
		this.frmConsultarCurso.setIconImage(Toolkit.getDefaultToolkit().getImage(ConsultarCurso.class.getResource("/Icon_/Curso_128.png")));
		this.frmConsultarCurso.setTitle("Consultar Curso");
		this.frmConsultarCurso.setBounds(100, 100, 570, 482);
		this.frmConsultarCurso.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
		this.frmConsultarCurso.getContentPane().setLayout(null);
		this.frmConsultarCurso.setModal(true);
		JLabel lblNombre = new JLabel("Nombre:");
		lblNombre.setFont(new Font("Tahoma", Font.BOLD, 11));
		lblNombre.setBounds(12, 22, 104, 14);
		this.frmConsultarCurso.getContentPane().add(lblNombre);

		this.textNombre = new JTextField();
		textNombre.setEditable(false);
		this.textNombre.setBounds(72, 19, 291, 20);
		this.frmConsultarCurso.getContentPane().add(textNombre);
		this.textNombre.setColumns(10);

		JLabel lblNewLabel = new JLabel("Descripcion");
		lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 11));
		lblNewLabel.setBounds(12, 118, 129, 14);
		this.frmConsultarCurso.getContentPane().add(lblNewLabel);

		this.textdescripcion = new JTextArea();
		this.textdescripcion.setLineWrap(true);
		this.textdescripcion.setWrapStyleWord(true);
		textdescripcion.setEditable(false);
		this.textdescripcion.setBounds(14, 144, 519, 63);
		this.frmConsultarCurso.getContentPane().add(textdescripcion);
		this.textdescripcion.setColumns(10);
		scrollpaneDescr = new JScrollPane(textdescripcion);
		scrollpaneDescr.setBounds(12, 143, 351, 138);
		frmConsultarCurso.getContentPane().add(scrollpaneDescr);

		JLabel lblCargaHoraria = new JLabel("Horas totales:");
		lblCargaHoraria.setFont(new Font("Tahoma", Font.BOLD, 11));
		lblCargaHoraria.setBounds(12, 58, 89, 14);
		frmConsultarCurso.getContentPane().add(lblCargaHoraria);

		this.textHorasTotales = new JTextField();
		textHorasTotales.setEditable(false);
		this.textHorasTotales.setBounds(103, 55, 260, 20);
		this.frmConsultarCurso.getContentPane().add(textHorasTotales);
		this.textHorasTotales.setColumns(10);

		JLabel lblArea = new JLabel("Area:");
		lblArea.setFont(new Font("Tahoma", Font.BOLD, 11));
		lblArea.setBounds(12, 93, 46, 14);
		this.frmConsultarCurso.getContentPane().add(lblArea);

		this.textArea = new JTextField();
		textArea.setEditable(false);
		this.textArea.setBounds(72, 90, 291, 20);
		this.frmConsultarCurso.getContentPane().add(textArea);
		this.textArea.setColumns(10);

		JButton btnOk = new JButton("Salir");
		btnOk.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				frmConsultarCurso.dispose();
			}
		});
		btnOk.setIcon(new ImageIcon(ConsultarCurso.class.getResource("/Icon_/exit.png")));
		btnOk.setFont(new Font("Tahoma", Font.BOLD, 11));
		btnOk.setBounds(447, 403, 97, 30);
		this.frmConsultarCurso.getContentPane().add(btnOk);

		btnEditar_Guardar = new JButton("Editar");
		btnEditar_Guardar.setEnabled(false);
		btnEditar_Guardar.setIcon(new ImageIcon(ConsultarCurso.class.getResource("/Icon_/pencil_16.png")));
		btnEditar_Guardar.setFont(new Font("Tahoma", Font.BOLD, 11));
		btnEditar_Guardar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				cargarCurso(curso);
				cmmCurso.updateCurso(curso);
				frmConsultarCurso.dispose();
			}
		});
		btnEditar_Guardar.setBounds(347, 403, 90, 30);
		this.frmConsultarCurso.getContentPane().add(btnEditar_Guardar);

		JLabel lblTemario = new JLabel("Temario:");
		lblTemario.setFont(new Font("Tahoma", Font.BOLD, 11));
		lblTemario.setBounds(12, 292, 109, 14);
		this.frmConsultarCurso.getContentPane().add(lblTemario);

		this.textTemario = new JTextArea();
		this.textTemario.setLineWrap(true);
		this.textTemario.setWrapStyleWord(true);
		this.textTemario.setEditable(false);
		this.frmConsultarCurso.getContentPane().add(textTemario);
		this.textTemario.setColumns(10);
		JScrollPane scrollpaneTemario = new JScrollPane(textTemario);
		scrollpaneTemario.setBounds(12, 324, 519, 52);
		frmConsultarCurso.getContentPane().add(scrollpaneTemario);

		JLabel label = new JLabel("");
		label.setIcon(new ImageIcon(ConsultarCurso.class.getResource("/Icon_/Curso_128.png")));
		label.setFont(new Font("Tahoma", Font.BOLD, 11));
		label.setBounds(393, 6, 138, 144);
		this.frmConsultarCurso.getContentPane().add(label);

		chckbxEditar = new JCheckBox("editar");
		chckbxEditar.addChangeListener(new ChangeListener() {
			public void stateChanged(ChangeEvent arg0) {
				if (chckbxEditar.isSelected() == true) {
					textArea.setEditable(true);
					textdescripcion.setEditable(true);
					textNombre.setEditable(true);
					textTemario.setEditable(true);
					textHorasTotales.setEditable(true);
					btnEditar_Guardar.setEnabled(true);

				} else {
					textArea.setEditable(false);
					textdescripcion.setEditable(false);
					textNombre.setEditable(false);
					textTemario.setEditable(false);
					textHorasTotales.setEditable(false);
					btnEditar_Guardar.setEnabled(false);

				}
			}
		});
		chckbxEditar.setBounds(215, 407, 97, 23);
		frmConsultarCurso.getContentPane().add(chckbxEditar);

	}

	private void cargarCurso(Curso curso) {
		Area a = cmmArea.findArea(textArea.getText());

		curso.setNombre(textNombre.getText());
		curso.setIdArea(a.getId()); // pasar a string despues o clsae area
		curso.setDescripcion(textdescripcion.getText());
		curso.setTemario(textTemario.getText());
		curso.setHorasTotales(Integer.parseInt(textHorasTotales.getText()));

	}

	private void getCurso(Curso c) {
		Area a = cmmArea.getArea(c.getIdArea());
		String areaNombre = a.getNombre();

		this.textNombre.setText(c.getNombre());
		this.textdescripcion.setText(c.getDescripcion());
		this.textHorasTotales.setText(c.getHorasTotales().toString());
		this.textArea.setText(areaNombre);
		this.textTemario.setText(c.getTemario());
		// textId.setText(c.getId().toString()); // TODO chantada para saber cual usuario es al q se consulta para modificarl

	}
}
